/*
 * NodoBSharpStringLong.h
 *
 *  Created on: 02/10/2010
 *      Author: jijodra
 */

#ifndef NODOBSHARPSTRINGLONG_H_
#define NODOBSHARPSTRINGLONG_H_

#include <iostream>
#include <vector>
#include "Puntero.h"
#include "RegistroBSharpStringLong.h"
#include "../moduloAlmacenamiento/ManejadorAccesoDatos.h"

using namespace std;

class NodoBSharpStringLong {
public:
	static const short NODO_RAIZ;
	static const short NODO_HOJA;
	static const short NODO_INDICE;

	short tipo;
	int cantClavesUsadas;
	int cantRegistrosUsados;
	long numNodo;
	long numBloque;
	Puntero anterior;
	Puntero siguiente;
	vector<string> claves;
	vector<Puntero> punteros;
	vector<RegistroBSharpStringLong> registros;

	NodoBSharpStringLong();
	NodoBSharpStringLong(short tipo);
	long CalcularTamanio(NodoBSharpStringLong nodo);
	long CalcularTamanio(vector<NodoBSharpStringLong> nodos);
	void Salvar(char* fileName);
	void Obtener(char* fileName, Puntero puntero);
	void Limpiar();
	virtual ~NodoBSharpStringLong();
};

#endif /* NODOBSHARPSTRINGLONG_H_ */
